#ifndef _INPUT_DEFINES_H
#define _INPUT_DEFINES_H

#define JOYSTICK_MIN -16384
#define JOYSTICK_MAX  16383

/** Defines of the button numbers for every systems. Furthermore a "special"
 *  define for the button on the system, which is the common "ok"-button. **/

#ifdef GP2X
    // Please DON'T use these AXIS definitions, they exist only for the gp2x
    #define AXIS_UP 0
    #define AXIS_LEFTUP 1
    #define AXIS_LEFT 2
    #define AXIS_LEFTDOWN 3
    #define AXIS_DOWN 4
    #define AXIS_RIGHTDOWN 5
    #define AXIS_RIGHT 6
    #define AXIS_RIGHTUP 7
    #define BUTTON_START 8
    #define BUTTON_SELECT 9
    #define BUTTON_L 10
    #define BUTTON_R 11
    #define BUTTON_A 12
    #define BUTTON_B 13
    #define BUTTON_X 14
    #define BUTTON_Y 15
    #define BUTTON_VOLPLUS 16
    #define BUTTON_VOLMINUS 17
    #define BUTTON_TIP 18
    //just for different practices
    #define PRACTICE_OK BUTTON_B
#elif defined CAANOO
    #define BUTTON_A 0
    #define BUTTON_X 1
    #define BUTTON_B 2
    #define BUTTON_Y 3
    #define BUTTON_L 4
    #define BUTTON_R 5
    #define BUTTON_START 6
    #define BUTTON_TIP 7
    #define BUTTON_SELECT 7
    #define BUTTON_VOLPLUS 8
    #define BUTTON_VOLMINUS 9
    #define PRACTICE_OK BUTTON_B
#else //PC and DINGOO and PANDORA (it really doesn't matter which number they've)
    #define BUTTON_START 0
    #define BUTTON_SELECT 1
    #define BUTTON_L 2
    #define BUTTON_R 3
    #define BUTTON_A 4
    #define BUTTON_B 5
    #define BUTTON_X 6
    #define BUTTON_Y 7
    #define BUTTON_VOLPLUS 8
    #define BUTTON_VOLMINUS 9
    #define BUTTON_TIP 10
    #define PRACTICE_OK BUTTON_A
#endif

/** The Names of the buttons and d-pads. **/

#ifdef GP2X
  #define BUTTON_START_NAME "Start"
  #define BUTTON_SELECT_NAME "Select"
  #define BUTTON_A_NAME "A"
  #define BUTTON_B_NAME "B"
  #define BUTTON_X_NAME "X"
  #define BUTTON_Y_NAME "Y"
  #define PAD_NAME "D-Pad"
  #define PRACTICE_OK_NAME BUTTON_B_NAME
#elif defined CAANOO
  #define BUTTON_START_NAME "Start"
  #define BUTTON_SELECT_NAME "Select"
  #define BUTTON_A_NAME "A"
  #define BUTTON_B_NAME "B"
  #define BUTTON_X_NAME "X"
  #define BUTTON_Y_NAME "Y"
  #define PAD_NAME "Stick"
  #define PRACTICE_OK_NAME BUTTON_B_NAME
#elif defined DINGOO
  #define BUTTON_START_NAME "Start"
  #define BUTTON_SELECT_NAME "Select"
  #define BUTTON_A_NAME "A"
  #define BUTTON_B_NAME "B"
  #define BUTTON_X_NAME "X"
  #define BUTTON_Y_NAME "Y"
  #define PAD_NAME "D-Pad"
  #define PRACTICE_OK_NAME BUTTON_A_NAME
#elif defined PANDORA
  #define BUTTON_START_NAME "Start"
  #define BUTTON_SELECT_NAME "Select"
  #define BUTTON_A_NAME "A"
  #define BUTTON_B_NAME "B"
  #define BUTTON_X_NAME "X"
  #define BUTTON_Y_NAME "Y"
  #define PAD_NAME "D-Pad"
  #define PRACTICE_OK_NAME BUTTON_A_NAME
#else
  #define BUTTON_START_NAME "Return"
  #define BUTTON_SELECT_NAME "Backspace"
  #define BUTTON_A_NAME "a"
  #define BUTTON_B_NAME "d"
  #define BUTTON_X_NAME "s"
  #define BUTTON_Y_NAME "w"
  #define PAD_NAME "Arrow Keys"
  #define PRACTICE_OK_NAME BUTTON_A_NAME
#endif

#endif
